Semi-structured documents do not have a formal structure, but they do contain tags or other markers to separate semantic elements and enforce hierarchies of records and fields. Extensible Markup Language (XML) documents and JavaScript Object Notation (JSON) documents are examples of semi-structured documents.
While it is common for a document database to have access control at the document level, it is a challenge to implement access control at the node level within a document with a tree data model, such as XML and JSON. One solution is to maintain different copies of data for each user based upon each user's data access permissions. Such a solution can result in data proliferation when there are many users with different permissions.
Accordingly, there is a need for node level access control in a semi-structured document database.